package com.chushouya.order.service.common;

import com.chushouya.order.dao.entity.OrderEntity;

import java.math.BigDecimal;
import java.util.Date;

public interface CommonOrderActionService {
    /**
     * 跟进订单
     */

    void waitOrder(OrderEntity orderEntity,String remark);

    /**
     * 关闭订单
     */
    void closeOrder(OrderEntity orderEntity,String remark,Integer orderStatus);

    /**
     * 订单预约快递
     */
    void receiveOrder(OrderEntity orderEntity, String remark, Integer orderStatus);
    /**
     * 订单派单
     */
    void dispatchOrder(OrderEntity orderEntity, Long clerkId, String remark, Integer orderStatus);

    /**
     * 订单议价
     */
    void bargainOrder(OrderEntity orderEntity, BigDecimal completePrice, String remark, Integer orderStatus);

    /**
     * 重新议价
     */
    void reBargainOrder(OrderEntity orderEntity, String remark, Integer orderStatus);

    /**
     * 完成订单
     */
    void completeOrder(OrderEntity orderEntity, Integer payType, BigDecimal completePrice, String remark, Integer orderStatus);

    /**
     * 业务员确认订单
     */
    void confirmOrder(OrderEntity orderEntity, Date appointStartTime, Date appointEndTime, String remark, Integer orderStatus);

    /**
     * 业务员接单
     */
    void acceptOrder(OrderEntity orderEntity, String remark, Integer orderStatus);

    /**
     * 业务员上门
     */
    void visitOrder(OrderEntity orderEntity, String remark, Integer orderStatus);

    /**
     * 申请撤单
     */
    void requestBackout(OrderEntity orderEntity, String backoutRemark, Integer orderStatus);

    void requestBackoutReject(OrderEntity orderEntity, String backoutRemark, Integer orderStatus);

    /**
     * 业务员撤单成功
     */
    void backoutOrderSuccess(OrderEntity orderEntity, String remark, Integer orderStatus);

    /**
     * 订单确认发货
     */
    void deliveryOrder(OrderEntity orderEntity, String remark, Integer orderStatus);

    /**
     * 订单退货
     */
    void returnOrder(OrderEntity orderEntity, String remark, Integer orderStatus);

    /**
     * 订单发货
     */
    void deliverOrder(OrderEntity orderEntity, String actionNote, Integer orderStatus);

    /**
     * 退货后重新议价
     */
    void returnAgain(OrderEntity orderEntity, String remark, Integer value);

    /**
     * 完成后退回代付款
     */
    void returnPay(OrderEntity orderEntity, String remark, Integer value);

    /**
     * 重发能量
     */
    void sendEnergy(OrderEntity orderEntity, String remark);

    /**
     * 重置订单
     */
    void resetOrder(OrderEntity orderEntity, String remark, Integer orderStatus);

    void qualityOrder(OrderEntity orderEntity, String remark, Integer value,BigDecimal qualityPrice);
}
